/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */
#ifndef _FishGroup_H_
#define _FishGroup_H_

#include "Common.h"

namespace Fish3D
{
	/*Fish group gather all the same fish together.
	*/
	class FishGroup
	{
	public:
		const unsigned int NUM_FISH;
		const unsigned int NUM_FISH_WAYPOINTS;
		const unsigned int FISH_PATH_LENGTH;
		const Ogre::Real FISH_SCALE;

		FishGroup(Ogre::SceneManager* sceneMgr,Ogre::String fishName,Ogre::String meshName);
		~FishGroup();
		
		
		void update(float deltaT);
	protected:
		void keepOnGround(int i);

	protected:
		Ogre::SceneManager* _sceneMgr;
		Ogre::RaySceneQuery* _rayQuery;

		Ogre::Real _fishAnimTime;
		std::vector<Ogre::Entity*> _entities;
		std::vector<Ogre::SceneNode*> _fishNodes;
		std::vector<Ogre::AnimationState*> _fishAnimStates;
		std::vector<Ogre::SimpleSpline> _fishSplines;
	};

}

#endif
